-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat-fe: 공고폼 임시 저장 기능 구현 #954
Conversation
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Jeongwoo Park <[email protected]>
c183a73
to
50a96ec
Compare
1735006390.590399 |
1735006392.370689 |
1735006394.880659 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
작업 고생하셨습니다.
로컬 스토리지에서 불러오는 로직이 깔끔하고 좋았어요. 어프루브 드립니다!
const [enableStorage] = useState(() => { | ||
const Step = window.localStorage.getItem(LOCALSTORAGE_KEYS.STEP); | ||
const Info = window.localStorage.getItem(LOCALSTORAGE_KEYS.INFO); | ||
const Apply = window.localStorage.getItem(LOCALSTORAGE_KEYS.APPLY); | ||
|
||
if (Step || Info || Apply) { | ||
return window.confirm('이전 작성중인 공고기 있습니다. 이어서 진행하시겠습니까?'); | ||
} | ||
return false; | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
요 흐름 깔끔하네요.👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
러기 바쁘신 와중에도 중요한 기능을 새로 구현해 주셔서 감사합니다. localStorage를 이용한 폼 임시 저장 기능은 저도 보면서 많이 공부해야겠어요 😅
안내메시지에 대한 사소한 오타 하나와, 폼 임시 저장과 무관한 로직 상의 의문이 있어 RC로 표기하고 코멘트 드립니다. 시간 괜찮으실 때 살펴주세요 🙏
const Apply = window.localStorage.getItem(LOCALSTORAGE_KEYS.APPLY); | ||
|
||
if (Step || Info || Apply) { | ||
return window.confirm('이전 작성중인 공고기 있습니다. 이어서 진행하시겠습니까?'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
멋진 로직에 감탄하던 중 발견한 오타가 😅
return window.confirm('이전 작성중인 공고기 있습니다. 이어서 진행하시겠습니까?'); | |
return window.confirm('이전 작성중인 공고가 있습니다. 이어서 진행하시겠습니까?'); |
@@ -128,7 +164,7 @@ export default function useDashboardCreateForm(): UseDashboardCreateFormReturn { | |||
|
|||
const setQuestionPrev = (index: number) => () => { | |||
setApplyState((prevState) => { | |||
if (index > DEFAULT_QUESTIONS.length) { | |||
if (index > DEFAULT_QUESTIONS.length + 1) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
어... 이렇게 되면 2번째 사전 질문(index
가 4인)을 윗쪽 순서로 옮기는 기능이 작동하지 않을 것 같네요. 아마도 테스트 코드 때문에 이렇게 조정하신 것 같은데, 제 생각엔 오히려 테스트 코드 쪽에 문제가 있는 것 같습니다. 인덱스가 1~4 범위인 경우를 검사하고 있거든요.
@@ -78,7 +79,9 @@ describe('useDashboardCreateForm', () => { | |||
|
|||
it('인덱스가 1에서 4인 질문은 prev할 수 없다.', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
요 테스트 문항이 문제인 것 같아요. 인덱스가 0~3인 질문은 prev 할 수 없다로 고쳐지는 게 맞을 것 같은데... 이전엔 어떻게 이 코드가 통과했었던 것인지 파악이 어렵네요 😓
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
그렇네요! 테스트 코드가 잘못되어있었군요🤣🤣🤣🤣
저땐 무슨생각이었을까요🥲
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
빠른 체크 및 수정에 감사드려요. Approve 드립니다 👍
Original issue description
목적
작업 세부사항
참고 사항
auto-save-form
closes #953
⚒️ 변경사항
useDashboardCreateForm
및useLocalStorageState
훅에 대한 테스트를 강화.localStorage
값이 존재하는 경우 이전 작성 데이터를 복원하는 로직 테스트.localStorage
값이 없는 경우 초기값을 설정하고 동작하는지 검증.confirm
호출로 사용자가 선택에 따라 저장된 데이터를 유지 또는 초기화하는 로직 테스트.AppRouter
에서 발생한 중복 렌더링 문제로 인해DashboardCreate
페이지의 Lazy Loading을 임시적으로 제거해당 임포트를 일반적인 동기 방식으로 변경하여 문제를 해결
동적임포트를 사용하면 Confirm 로직이 4번 나타납니다. (예상값은 Strict Mode로 2번)
아래는 동적 임포트 사용시 4번 Confirm 로직이 발생되는 부분 캡쳐
2024-12-24.11.06.36.mov
dashboardHandlers
에서clubId
가 누락된 요청을 처리하도록 수정.💬 논의 사항